7inch usb wifi firmaware Bonrix Display API Commands & Responses ======================================= 1. curl http://your-ip/api/images → Lists all images in /images folder (slideshow images) with names, sizes + storage info { "files": [ {"filename": "1.jpg", "size": 24576}, {"filename": "banner.jpg", "size": 51234} ], "totalBytes": 1966080, "usedBytes": 937984, "availableBytes": 1028096 } 2. curl http://your-ip/api/mp3 → Lists all MP3 files in /mp3 folder (audio files) with names, sizes + storage info { "files": [ {"filename": "alert.mp3", "size": 128000}, {"filename": "welcome.mp3", "size": 256000} ], "totalBytes": 1966080, "usedBytes": 937984, "availableBytes": 1028096 } 3. curl http://your-ip/api/theme → Lists all theme/background images in /textimage folder (welcome, QR, success, etc.) { "files": [ {"filename": "welcome.jpeg", "size": 89528}, {"filename": "qrcode.jpeg", "size": 55207}, {"filename": "success.jpeg", "size": 35705} ], "totalBytes": 1966080, "usedBytes": 937984, "availableBytes": 1028096 } 4. curl "http://your-ip/mp3/play?file=sample.mp3" → Starts playing the specified MP3 file from /mp3 folder { "status": "playing", "file": "sample.mp3" } 5. curl "http://your-ip/mp3/delete?file=sample.mp3" → Deletes the specified MP3 file from /mp3 folder { "status": "deleted", "file": "sample.mp3" } 6. curl -F "file=@song.mp3" http://your-ip/mp3/upload → Uploads a new MP3 file to /mp3 folder for later playback { "status": "success", "message": "MP3 uploaded", "bytes": 256000 } curl command : curl --location '192.168.29.215/mp3/upload' \ --form 'file=@"/C:/Users/DR/Pictures/pay.mp3"' ------------------------------------------------------------------ 7. curl http://your-ip/volume → Gets current speaker volume level (0–21) { "volume": 15, "max": 21, "min": 0 } 8. curl http://your-ip/volume/up → Increases speaker volume by 1 step (max 21) { "status": "increased", "volume": 16 } 9. curl http://your-ip/volume/down → Decreases speaker volume by 1 step (min 0) { "status": "decreased", "volume": 15 } 10. curl "http://your-ip/volume/set?value=18" → Sets speaker volume directly to given value (0–21) { "status": "set", "volume": 18 } 11. curl http://your-ip/images/rotation/start → Starts automatic slideshow/rotation of images from /images folder { "status": "started", "message": "Rotation started", "image_count": 5, "first_image": "1.jpg" } 12. curl http://your-ip/images/rotation/stop → Stops the image slideshow/rotation { "status": "stopped", "message": "Slideshow rotation stopped" } 13. curl "http://your-ip/images/rotation/interval?sec=10" → Sets how many seconds each image is shown during slideshow { "status": "updated", "interval_seconds": 10 } 14. curl -F "file=@photo.jpg" http://your-ip/images/upload → Uploads new image to /images folder (for slideshow/rotation) { "status": "success", "message": "Image uploaded", "bytes": 24576 } curl comman: curl --location '192.168.29.215/images/upload' \ --form 'file=@"/C:/Users/DR/Pictures/3.jpeg"' -------------------------------------------------------------------------- 15. curl -F "file=@ad.jpg" http://your-ip/images/ram → Uploads and immediately displays image on screen (RAM only, no save) { "status": "displayed", "message": "Image displayed in RAM" } curl command : curl --location '192.168.29.215/images/ram' \ --form 'file=@"/C:/Users/DR/Pictures/4.jpeg"' -------------------------------------------------------------------------- 16. curl "http://your-ip/images/delete?filename=photo.jpg" → Deletes specified image from /images folder { "status": "deleted", "file": "photo.jpg" } 17. curl -F "file=@new_bg.jpg" http://your-ip/theme/upload → Uploads new theme/background image to /textimage folder (for welcome/QR/etc.) { "status": "success", "message": "Theme image uploaded", "bytes": 32768 } curl command : curl --location '192.168.29.215/theme/upload' \ --form 'file=@"/C:/Users/DR/Pictures/1.jpeg"' ------------------------------------------------------------------ 18. curl "http://your-ip/theme/delete?file=old_bg.jpg" → Deletes specified theme image from /textimage folder { "status": "deleted", "file": "old_bg.jpg" } 19. curl http://your-ip/device/serial → Gets unique serial number / chip ID of the ESP32 device { "serial_number": "123456789", "chip_id": 123456789 } 20. curl "http://your-ip/api/welcome?title=Welcome%20to%20Store" → Displays welcome screen with custom title Response: { "status": "success", "message": "Welcome screen displayed" } ------------------------------------------------ 21. curl "http://192.168.29.215/api/qr/display?upiurl=upi://pay?pa=7418529631@icici&am=500&pn=Test&cu=INR&amount=500&upi=7418529631@icici" → Shows QR code payment screen with UPI deep link Response:JSON { "status": "success", "message": "QR payment screen displayed" } ----------------------------------------------------- 22. curl "http://your-ip/api/qr/success?bankrrn=RRN987654321&orderid=ORD20260204001&date=04-02-2026&amount=780" → Shows payment success screen with transaction details Response: { "status": "success", "message": "Success screen displayed" } -------------------------------------------------------- 23. curl "http://your-ip/api/qr/fail?orderid=ORD999&bankrrn=RRN999&date=04-02-2026" → Shows payment failed screen Response: { "status": "success", "message": "Fail screen displayed" } -------------------------------------------------------- 24. curl "http://your-ip/api/qr/cancel?orderid=ORD777&bankrrn=RRN777&date=04-02-2026" → Shows payment cancelled screen Response: { "status": "success", "message": "Cancel screen displayed" } -------------------------------------------------------- 25. curl "http://your-ip/api/qr/pending?orderid=ORD555&bankrrn=RRN555&date=04-02-2026" → Shows payment pending screen Response: { "status": "success", "message": "Pending screen displayed" } ------------------------------------------------------ 26. curl "http://your-ip/api/total?totalamount=1850&discount=120&tax=148&grandtotal=1878" → Displays simple total summary screen Response: { "status": "success", "message": "Total screen displayed" } ---------------------------------------------------------- 24. curl http://your-ip/api/config -X POST -H "Content-Type: application/json" -d '{...}' → Updates display text positions, colors, QR offsets etc. via JSON payload Response: { "status": "success", "message": "Display configuration updated" } curl command : curl --location 'http://192.168.29.215/api/config' \ --header 'Content-Type: application/json' \ --data '{ "DisplayQRCodeScreen": { "text_to_pay": { "x": 320, "y": 130, "color": "BLACK" }, "amount_text": { "positions": { "1": [330, 160], "2": [320, 160], "3": [310, 160], "4": [300, 160], "5": [290, 160], "default": [280, 160] }, "color": "ORANGE" }, "qr": { "version": 10, "size": 4, "x_offset": 35, "y_offset": 40 }, "upi": { "x": 35, "y": 282, "color": "ORANGE" } }, "DisplaySuccessQRCodeScreen": { "amount_text": { "positions": { "1": [212, 180], "2": [200, 180], "3": [188, 180], "4": [176, 180], "5": [164, 180], "default": [142, 180] }, "color": "BLACK" } } }' --------------------------------------------------------- 28. curl http://your-ip/api/upload_config -X POST -F "config=@display_config.json" → Uploads complete display config JSON file Response: { "status": "success", "message": "Config uploaded successfully", "bytes": 479, "filename": "display_config.json" } curl command : curl --location 'http://192.168.29.215/api/upload_config' \ --header 'Content-Type: application/json' \ --form 'config=@"/C:/Users/DR/Documents/JSON DISPLAY CONFIG FINAL/display_configAMAZON - Copy.json"' --------------------------------------------------------- 29. curl "http://your-ip/api/theme/single?format=1" → Applies single bill / receipt theme (format 1–?) Response: { "status": "success", "message": "Single bill theme changed" } ----------------------------------------------------------- 30. curl "http://your-ip/api/theme/full?theme=1" → Applies full bill/receipt theme (theme number 1–?) Response: { "status": "success", "message": "Full bill theme changed" } -------------------------------------------------------------- 31. curl http://your-ip/api/bill/single -X POST -d "ItemNameCODE120.003pcs360.001878.00" → Displays single line / quick bill item Response: { "status": "success", "message": "Single bill item processed and displayed" } curl command : curl --location 'http://192.168.29.215/api/bill/single' \ --header 'Content-Type: text/plain' \ --data 'Cold Drink**ITM001**120.00**2**bottle**240.00**1250.00' ---------------------------------------------------------------- 32. curl http://your-ip/api/bill/full -X POST -H "Content-Type: application/json" -d '{...}' → Displays complete structured bill (store, items, totals, footer) Response: { "status": "success", "message": "Full bill processed and displayed" } curl command : curl --location 'http://192.168.29.215/api/bill/full?Content-Type=application%2Fjson' \ --header 'Content-Type: application/json' \ --data '{ "storeInfo": { "storeName": "Bonrix Retail", "address": "Ahmedabad, Gujarat", "phone": "9876543210", "gstin": "24ABCDE1234F1Z5" }, "billInfo": { "billNo": "INV-20260131", "date": "2026-01-31", "time": "18:45", "cashier": "Priya" }, "customerInfo": { "customerName": "Amit Patel", "customerPhone": "8765432109" }, "items": [ { "itemName": "Rice 5kg", "quantity": 1, "pricePerUnit": 450, "total": 450 }, { "itemName": "Oil 1L", "quantity": 2, "pricePerUnit": 180, "total": 360 }, { "itemName": "Milk 1L", "quantity": 3, "pricePerUnit": 60, "total": 180 } ], "totals": { "subTotal": 990, "tax": 99, "discount": 50, "totalAmount": 1039, "amountPaid": 1039, "paymentMethod": "Cash" }, "footer": { "message": "Visit Again!", "website": "bonrix.in" } }'